Activity-based rules for compliance detection using body-worn offender monitoring electronic devices

ABSTRACT

A system for tracking a location of a body-worn tracking device (BWTD) includes a global navigation satellite system (GNSS) component, one or more sensors, one or more processors, and a memory device. The memory device includes instructions that, when executed by the one or more processors, cause the one or more processors to determine whether a current location of the BWTD can be determined using the GNSS component. The instructions also cause the one or more processors to determine, based in part on the activity of the wearer of the BWTD and based on a determination that the current location of the BWTD cannot be determined using the GNSS component, whether to perform an action. The instructions also cause the one or more processors to perform the action in response to a determination to perform the action.

This application is related to U.S. Provisional Patent Application62/520,615 filed Jun. 16, 2017 and to U.S. Provisional PatentApplication 62/534,490 filed Jul. 19, 2017, the entire content of bothis incorporated by reference.

TECHNICAL FIELD

This disclosure relates to information systems for tracking geospatiallocation information related to monitored persons or objects.

BACKGROUND

Released criminal offenders on community supervision, either probationor parole, may be monitored with body-worn tracking devices (BWTDs) by acriminal justice supervising agency, such as a department of correctionsor local law enforcement. The monitoring is based on a sentence, andoften includes restricted regions and permissible regions with aschedule for the day of the week and a range of times associated withthose areas when the released criminal offender is required to be orrequired not to be in those areas1. A released criminal offender'sgeospatial location at a given date and time is monitored and recordedby tracking devices worn or carried by the released criminal offender.This geospatial information, including date and time information, can beused to determine a released criminal offender's compliance with theirsentence. Activities of released criminal offenders can be reported tothe criminal justice supervising agency or to a probation or paroleofficer by fax, page, text message or email generated by a monitoringcenter unique to the criminal justice supervising agency.

SUMMARY

Techniques of this disclosure are directed to detecting compliance withgeographic boundaries using a body-worn tracking devices (BWTD) worn bya monitored person. In some examples, a computing device (e.g., aprocessor of a BWTD, a local computer, a server of a monitoring system,etc.) determines whether the BWTD is within a bounded geographic regionwhen the BWTD is unable to determine its current location by using aGlobal Navigation Satellite System (GNSS). For example, the BWTD maylose connectivity to one or more GNSS satellites (e.g., GlobalPositioning System (GPS) satellites) when the monitored person wearingthe BWTD enters his or her place of employment. As described herein, thecomputing device may be configured to determine a current activity ofthe monitored person and, responsive to the determined activity,dynamically adapt a grace period for requiring re-establishment of GNSSconnectivity.

For example, for activities that may result in a high level of travelduring loss of GNSS connectivity, such as a determination that the useris biking, driving or running, the computing device may decrease theconfigured grace period. For activities that may result in a reducedlevel of travel during loss of GNSS connectivity, such as adetermination that the user is sleeping or walking, the computing devicemay increase the configured grace period, thereby avoiding technicalburdens on the network and computing resources.

As a result, rather than outputting a notification at a fixed time whenthe BWTD loses a GNSS signal, the computing device may more efficientlyoutput notifications as a function of the current activity beingperformed during the time period when GNSS signal loss occurs, which mayadvantageously reduce the burden on computing resources of the BWTDand/or a receiving monitoring system, the amount of data transferredbetween the BWTD and monitoring system, and generally the number ofnotifications processed and provided to the monitored person and/or lawenforcement. Reducing the number of notifications may improve processingefficiencies, and ease the burden on monitored persons and/or lawenforcement in assisting monitored persons to stay within permittedgeographic boundaries.

In an example, this disclosure describes a system for tracking alocation of a body-worn tracking device (BWTD), the system comprising: aglobal navigation satellite system (GNSS) component; one or moresensors; a set of one or more processors; and one or more memory devicescomprises instructions that, when executed by the one or moreprocessors, cause the one or more processors to: determine that acurrent location of the BWTD cannot be determined using the GNSScomponent; determine, based on data generated by the one or moresensors, an activity of a wearer of the BWTD, the activity of the wearerbeing a form of locomotion or a sedentary activity; and responsive todetermining the activity of the wearer of the BWTD and a determinationthat the current location of the BWTD cannot be determined using theGNSS component, performing an action.

In another example, this disclosure describes a method comprising:determining, by a set of processors in a system for tracking a locationof a body-worn tracking device (BWTD), that a current location of theBWTD cannot be determined using a global navigation satellite system(GNSS) component of the system, the set of processors including one ormore processors; determining, by the one or more processors, based ondata generated by one or more sensors, an activity of a wearer of theBWTD, the activity of the wearer being a form of locomotion or asedentary activity; and performing, by the one or more processors, anaction based in part on the activity of the wearer of the BWTD and basedon a determination that the current location of the BWTD cannot bedetermined using the GNSS component.

In another example, this disclosure describes a system comprising meansfor performing this method. In another example, this disclosuredescribes a non-transitory computer-readable medium having instructionsstored thereon that, when executed, cause one or more processors toperform this method.

In another example, this disclosure describes a BWTD comprising: a GNSScomponent; one or more sensors; a set of one or more processors; and oneor more memory devices comprising instructions that, when executed bythe one or more processors, cause the one or more processors to:determine whether a current location of the BWTD can be determined usingthe GNSS component; determine, based on data generated by the one ormore sensors, an activity of a wearer of the BWTD, the activity of thewearer being a form of locomotion or a sedentary activity; responsive toa determination that the current location of the BWTD cannot bedetermined using the GNSS component, adjust, based on the activity ofthe wearer of the BWTD, a duration of a grace period; and generate anotification in response to determining the grace period has expired.

The details of one or more examples are set forth in the accompanyingdrawings and the description below. Other features, objects, andadvantages of the disclosure will be apparent from the description,drawings, and claims.

BRIEF DESCRIPTION OF DRAWINGS

FIG. 1 is a conceptual diagram illustrating an example monitoring systemfor determining a location of a body-worn tracking device, in accordancewith one or more aspects of this disclosure.

FIG. 2 is a perspective view of an example body-worn tracking device, inaccordance with one or more aspects of the present disclosure.

FIG. 3 is a block diagram illustrating example components of a body-worntracking device, in accordance with one or more aspects of the presentdisclosure.

FIG. 4 is a block diagram illustrating example components of serverdevice 114A, in accordance with one or more aspects of the presentdisclosure.

FIG. 5A is an example signal diagram in which a monitoring system doesnot use an activity-based rule for car motion.

FIG. 5B is an example signal diagram in which a monitoring system usesan activity-based rule for car motion, in accordance with one or moreaspects of this disclosure.

FIG. 6 is a flow diagram illustrating an example operation of amonitoring system, in accordance with aspects of this disclosure.

FIG. 7 is a flow diagram illustrating an example operation of abody-worn tracking device (BWTD) to determine an activity, in accordancewith one or more aspects of this disclosure.

FIG. 8 is an accelerometer data graph showing exemplary data of a BWTDworn by an individual over a period of approximately 384 seconds.

FIG. 9 shows a graph illustrating example belief values for activitylabels associated with the movement data from FIG. 8 over multiple timewindows.

FIG. 10 is a flowchart illustrating an example operation of thisdisclosure, in accordance with one or more aspects of this disclosure.

FIG. 11 is an example chart illustrating acceleration data capturedwhile driving a car.

DETAILED DESCRIPTION

In an offender monitoring system, each offender is typically assigned adevice (e.g., a body-worn tracking device (BWTD)) that determines andstores a variety of data such as location, speed, heading, or the likeat prescribed intervals (e.g., every minute). The device typicallyincludes a Global Navigation Satellite System (GNSS) device (e.g., aGlobal Positioning System (GPS) receiver) to help determine when theoffender violates the terms of his or her parole (e.g., by enteringprohibited geographic areas or exiting permitted areas). However, GNSSdevices may temporarily lose connectivity to one or more GNSSsatellites, for example, due to surrounding structure or environmentalfeatures. Losing connectivity to one or more satellites may prevent theBWTD from determining current GNSS coordinates of the BWTD, which maylimit the ability of law enforcement to ensure the offender complieswith the terms of his or her parole.

Conventionally, when a BWTD is unable to determine the BWTD's currentlocation using a GNSS device, the BWTD starts a grace period. If thegrace period expires prior to the BWTD again being able to determine theBWTD's current location using the GNSS device, the BWTD may output amessage notifying the offender that he or she is required tore-establish GNSS connectivity. Thus, in one example, when a paroleeloses GPS for more than N minutes, the parolee is required to establisha GPS signal or be in violation of parole. This is quite an obnoxiouspractice if one's work or home does not have a strong GPS signal. Inaddition, a monitoring system may generate an alert indicating that awearer of the BWTD is potentially at an unauthorized location.Conventionally, the grace period has a fixed duration. However, the useof a fixed-duration grace period may present several challenges in amonitoring system. For example, if a wearer of a BWTD lives or works ina location where the BWTD frequently loses GNSS connectivity, the wearermay frequently need to go to a location where the BWTD is able to regainGNSS connectivity, no matter what the wearer is doing. This may beextremely disruptive to the life of the wearer and may increase thenumber of times the monitoring system generates alerts, despite thewearer being at an authorized location. The generation of such necessaryalerts may increase the costs to an organization that uses themonitoring system because the organization may need to send outpersonnel to investigate the alerts.

Thus, there may be a need for greater flexibility in responding to theloss of GNSS connectivity. In accordance with various techniques of thisdisclosure, instead of using a fixed grace period when a BWTD loses GNSSconnectivity, a monitoring system may determine a current activity of awearer of the BWTD. Additionally, the monitoring system may determine,based in part on the activity of the wearer of the BWTD and based on adetermination that the current location of the BWTD cannot be determinedusing the GNSS component, whether to perform an action. The monitoringsystem may perform the action in response to a determination to performthe action. As one example, the monitoring system may adaptively modify(i.e., shorten or extend) the grace period at which time an alert isoutput instructing the offender that the offender is required tore-establish GNSS connectivity. More generally, as one example, anaction may comprise configuring the BWTD with a particular grace periodthat is based at least in part on the determined activity of the wearer.For instance, in this example, there may be predefined grace periods fordifferent activities.

In some examples, to determine whether to perform the action, themonitoring system may evaluate a set of rules. The rules may includeactivity-dependent rules. Each respective activity-dependent rule in theset of activity-dependent rules specifies a condition that is satisfiedif the wearer of the BWTD performs a particular activity of a pluralityof activities and if the current location of the BWTD is notdeterminable using the GNSS component. The monitoring system makes thedetermination to perform the action in response to determining thecondition is satisfied. Furthermore, in some examples, the conditionsspecified by the activity-dependent rules may be satisfied if the BWTDdoes not regain GNSS connectivity within grace periods of differentdurations. For instance, there may be a longer grace period for sleepingthan for running. The use of different rules for different activitiesmay reduce the frequency with which the monitoring system generatesalerts despite wearers of BWTDs being at authorized locations.

FIG. 1 is a conceptual view illustrating an example monitoring system100 for determining a location of a body-worn tracking device, inaccordance with one or more aspects of this disclosure. Monitoringsystem 100 comprises a body-worn tracking device (BWTD) 106, satellites108A through 108N (collectively, “satellites 108”), a monitoring center112, a network 115, a user device 116. People shown in the example ofFIG. 1 are not considered part of monitoring system 100. A monitoredtarget 104 wears BWTD 106. Monitoring system 100 tracks the location ofBWTD 106, and thereby tracks the location of monitored target 104.Although not shown in the example of FIG. 1 for the sake of simplicity,monitoring system 100 may track the locations of multiple BWTDs, andthereby track the locations of multiple monitored targets.

In the example of FIG. 1, monitored target 104 and BWTD 106 are locatedwithin a geographic region 101, which may be a portion of the Earth'ssurface. In this example, geographic region 101 includes multiple roads102A-102C (“roads 102”) on which monitored target 104 may travel.Geographic region 101 may include human built structures (e.g., houses,buildings, and the like) and/or natural structures (trees, mountains,oceans, lakes, and the like).

In the example of FIG. 1, monitored target 104 is a person wearing BWTD106. However, in other examples, a monitored target may be a non-humanobject to which a BWTD is attached. For instance, a monitored target maybe a vehicle, animal, or any other movable object that may move todifferent locations in a geographic area. In examples where a monitoredtarget is non-human, a BWTD may be any device that is attached to,accompanies or is otherwise physically associated with the movableobject, even if not necessarily bodily worn.

Monitored target 104 may be a released criminal offender, although inother examples a monitored target may be any person. Released criminaloffenders may be criminal offenders who have been suspected, accused, orconvicted of a crime and released from a jail or prison. For instance,when monitored target 104 is released from jail, prison, or otherfacility, BWTD 106 may be attached by law enforcement to the body ofmonitored target 104. In some examples, monitored target 104 is anindividual with certain a psychological condition, such as dementia orAlzheimer's disease, that makes the individual likely to leave safeareas. In such examples, a caregiver may use BWTD 106 to monitor thelocation of such an individual.

BWTD 106 may comprise a portable computing device that determines itscurrent location and reports the determined location to monitoringcenter 112 or another physically separate computing device. Furthermore,BWTD 106 may include a physical housing constructed of plastic or anyother suitable material. The housing may include electronics such as,but not limited to: one or more computer processors, one or morememories, one or more wired and/or wireless communication devices (e.g.,cellular network component, WiFi component, short-range (e.g., a NearField Communication (NFC) component, a Bluetooth component, a UniversalSerial Bus (USB) component), one or more output devices (e.g., a hapticfeedback component, one or more lights, one or more user interfacedisplay components, one or more audio components), one or more GNSScomponents (e.g., a GPS receiver), one or more sensor components (e.g.,an accelerometer, a gyroscope, a magnetometer, etc.), one or more powersources (e.g., battery, power supply), and one or more circuit boardsthat physically, communicatively, and/or electronically couple suchcomponents to one another within the housing of BWTD 106.

Each respective satellite of satellites 108 transmits a respectivesatellite signal indicating a current time and a current location of therespective satellite. GNSS components of BWTD 106 may include acombination of software and hardware components to receive the satellitesignals transmitted by satellites 108. In some examples, satellites 108are global navigation satellites in a global navigation satellite system(GNSS). Example global navigation satellite systems include the GPSsatellite network, the Galileo satellite network, the GLONASS satellitenetwork, and other government- or commercially-operated satellitenetworks. Each satellite signal received by the GNSS components of BWTD106 from a satellite of satellites 108 includes data such as the currentposition of the particular satellite and the current time. Although theexample of FIG. 1 only shows three satellites, different numbers ofsatellites may be used by BWTD 106 to determine the GNSS coordinates ofBWTD 106 at a point in time.

In some examples, BWTD 106 is a one-piece design in which GNSS hardwareand all other hardware for the BWTD are included in a single physicalhousing. In other examples, BWTD 106 may not include GNSS hardware,which may be physically separate from, but in communication with, BWTD106. For instance, monitored target 104 may carry a physical device withGNSS hardware (e.g., such as a telephone having GNSS functionality), andseparately BWTD 106 may be attached to monitored target 104 and incommunication with the GNSS hardware. Further details of the componentsincluded within BWTD 106 are illustrated and described in FIGS. 2 and 3.

In some examples, BWTD 106 may further include a combination of softwarecomponents and hardware components to perform one or more monitoringfunctions. For instance, BWTD 106 may include a location detectioncomponent comprised of hardware and/or software that communicates withthe GNSS hardware component to determine and record GNSS coordinates ofBWTD 106. For example, location detection components may receive thedata from satellites 108 (e.g., data indicative of the position of aparticular satellite) via the GNSS components and may determine GNSScoordinates of BWTD 106 based on the data received from satellites 108.In some examples, the location detection component sends such GNSScoordinates of BWTD 106 to monitoring center 112 or other physicallyseparate computing device.

BWTD 106 may have a unique device identifier that is different fromunique identifiers of each other BWTD in a set of BWTDs. A database mayassociate the unique device identifiers with personally identifyinginformation of a monitored target. In this way, as monitored target 104moves to different locations in a geographic region, geographic locationpoints generated by BWTD 106 and stored at monitoring center 112 may beassociated with or otherwise attributed to monitored target 104, suchthat the location and/or whereabouts of monitored target 104 may bemonitored.

Monitoring system 100 may also include one or more towers, such as tower110, that form cellular network infrastructure. Tower 110 may include aphysical structure that supports antennae, a GNSS receiver, one or moresets of digital signal processors, transceivers, and controlelectronics, which collectively operate to establish sessions withend-user devices such as BWTDs, smartphones, or any other computingdevice. Tower 110, together with one or more other towers that includesimilar functionality, may be geographically dispersed, so as to providea geographically dispersed wireless network for voice and/or datacommunication. Tower 110 and switching infrastructure (not shown) may beowned and operated by wireless or cellular carrier providers that chargecustomer/subscriber fees to operate on the wireless or cellular carrierprovider.

Monitoring center 112 may be owned and operated by a private entity or agovernment entity. Monitoring center 112 includes one or more computingdevices, such as server devices 114A-114N (“server devices 114”).Further details of the components included within server devices 114 isillustrated in FIG. 4. Server devices 114 may collectively provide adata center to monitor and track monitored persons based on, among otherdata, GNSS coordinates of BWTDs that are provided to server devices 114.

In some examples, server devices 114 stores an association between amonitored person and a respective BWTD worn by a monitored target. Forinstance, at the time that a BWTD is attached to the monitored target, auser may use a separate, end-user computing device in communication withmonitoring center 112 to provide user input that creates an associationbetween a unique identifier of the monitored target and a uniqueidentifier of the BWTD. For instance, the association may be stored as arecord in a database. As GNSS coordinates are received by monitoringcenter 112 from the BWTD with the unique identifier of the BWTD,monitoring center 112 may store such GNSS coordinates in associationwith the unique identifier of the BWTD. In this way, an operator ofmonitoring center 112 may determine the GNSS coordinates associated witha particular monitored person.

Monitoring center 112 may receive configuration input from users, suchas law enforcement officers, that specify condition-action rules. Acondition-action rule may specify one or more actions monitoring system100 performs in response to the condition specified by thecondition-action rule being satisfied. For example, a condition-actionrule may specify an action to be performed if BWTD 106 moves into anunauthorized area. Such configuration input may be sent by a computingdevice of the user to monitoring center 112 via network 115. Theconfiguration input may specify a unique identifier of the monitoredperson and/or BWTD and may also include properties such as namedlocations, perimeters, GNSS coordinates or any other properties that maybe used to define authorized and/or unauthorized areas. By associatingauthorized and/or unauthorized areas with a BWTD and/or monitored targetwearing the BWTD, monitoring center 112 can determine violations, suchas, determining whether a monitored person is operating within arestricted area and/or exits a permitted area.

In some examples, an action of a condition-action requires monitoringcenter 112 to send one or more notifications. In some examples,monitoring center 112 may send a notification via network 115 to BWTD106 for the violation, which may cause BWTD 106 to output an alert(e.g., haptic, visual, and/or audio feedback). In some examples, as partof performing an action specified by a condition-action rule, monitoringcenter 112 may send notifications to one or more other users, who may beassociated with the monitored person who is in violation. For instance,to determine the one or more other users associated with the monitoredtarget, monitoring center 112 may store within a record of a database aunique identifier of a law enforcement officer in association with aunique identifier of a monitored person.

Monitoring center 112 may generate user interfaces for display, such asmaps that indicate different locations at which a monitored offender hasbeen physically present. In some examples, monitoring center 112 mayillustrate different locations at which a monitored offender has beenphysically present over a period of time. Monitoring center 112 mayoutput any data that in any suitable format including still and movingimage data, audio data, and the like. For instance, geographic region101 may be visually represented in a map, which may be two- orthree-dimensional. Such maps may be output for display by computingdevices as further described in this disclosure. In the example of FIG.1, a map generated based on geographic region 101 may be visuallysimilar in appearance to the representation of geographic region 101 asillustrated in FIG. 1.

In the example of FIG. 1, a monitoring user 118 uses user device 116.Although FIG. 1 shows user device 116 as a smartphone, user device 116may be various types of computing device. For example, user device 116may be a laptop computer, a tablet computer, a smartphone, a desktopcomputer, a server computer, a body worn computer (e.g., smartwatch,head-mounted device), or any other suitable computing device. Althoughthe example of FIG. 1 shows monitoring system 100 as only including asingle user device 116, monitoring system 100 may comprise multiple userdevices performing functions similar to user device 116.

User device 116 may include one or more components comprising acombination of hardware and software. For instance, user device 116 mayexecute a monitoring application implemented in software and executableon hardware of user device 116. The monitoring application may providenotifications of violations, maps or other visual representations ofmonitored offender locations based on real-time or past-generated GNSScoordinates. The monitoring application may also generate and send datathat associates a unique identifier of a BWTD with a unique identifierof a monitored person. In some examples, the monitoring application maynatively implement functionality described in this disclosure, while inother examples the monitoring application may be a web-browser thataccesses a web-based application with such functionality via aweb-hosted application executing at monitoring center 112.

Monitoring user 118 may be a law enforcement officer, parole officer, oranother type of public safety official or employee. In some examples,monitoring user 118 is a non-public safety office/employee, such as pastor potential victims of a monitored offender, a school administrator, oranother type of user that may be interested in or need to know of thelocation or violations of a monitored target. User device 116 mayprovide notifications to monitoring user 118 in response to messagessent by monitoring center 112.

Network 115 may represent a publicly accessible computer network that isowned and operated by a service provider, which is usually largetelecommunications entity or corporation. Although not illustrated inthe example of FIG. 1, network 115 may be coupled to one or morenetworks administered by other providers, and may thus form part of alarge-scale public network infrastructure, e.g., the Internet. Network115 may provide computing devices, such as BWTD 106, user device 116,and monitoring center 112, with access to the Internet, and may allowthe computing devices to communicate with each other. In some examples,network 115 may include one or more local area networks (LANs), suchthat user device 116 may communicate with monitoring center 112 throughthe Internet and/or a LAN on which both monitoring center 112 and userdevice 116 are included.

Although additional network devices are not shown in the example of FIG.1 for ease of explanation, it should be understood that network 115 andmonitoring system 100 may comprise additional network and/or computingdevices such as, for example, one or more additional switches, routers,hubs, gateways, security devices such as firewalls, intrusion detection,and/or intrusion prevention devices, servers, computer terminals,laptops, printers, databases, wireless mobile devices such as cellularphones or personal digital assistants, wireless access points, bridges,cable modems, application accelerators, or other network devices. Itshould be understood that one or more additional network elements may beincluded along any of network links 120A-120C, such that the devices ofmonitoring system 100 are not directly coupled. Network links 120A-120Cmay be wired or wireless communication links, such as 100 Mbps, 1 Gbps,or 10 Gbps WiFi connections and/or physical cable connections, to nameonly a few examples.

To monitor a location of monitored target 104, BWTD 106 may be attachedto monitored target 104. In some examples, BWTD 106 includes atamper-resistant strap that binds BWTD 106 to monitored target 104. BWTD106 may include one or more components comprised of hardware and/orsoftware that detect if monitored target 104 or another person havetampered with the tamper-resistant strap and/or the housing/internalcomponents of BWTD 106. If BWTD 106 detects that a tampering event isoccurring or has occurred, BWTD 106 may send a message via network 115to monitoring center 112 to indicate the tampering event.

User device 116 may receive indications of user input from monitoringuser 118 that define an association between BWTD 106 and monitoredtarget 104 in monitoring center 112. In other words, monitored target104 may be assigned to wear BWTD 106. User device 116, for example, mayoutput a graphical user interface for display. The graphical userinterface may include one or more user interface components, such asinput fields, dropdown menus, labels or text fields, or any othergraphical component through which BWTD 106 may receive indications ofuser input from monitoring user 118.

In the example of FIG. 1, user device 116 may receive indications ofuser input from monitoring user 118 that specify or select a uniqueidentifier of BWTD 106 and may further receive one or more user inputsfrom monitoring user 118 that specify or select a unique identifier ofmonitored target 104. In addition to receiving an indication of userinput specifying or selecting the unique identifiers of BWTD 106 and/ormonitored target 104, user device 116 may receive input from monitoringuser 118 to define an association between the respective uniqueidentifiers. User device 116 may send one or more messages to monitoringcenter 112 that define the association between the unique identifier ofmonitored target 104 and BWTD 106.

In some examples, user device 116 may receive indications of user inputdefining condition-action rules. For example, user device 116 mayreceive an indication of user input defining a condition-action rulesthat specifies an action to be performed in response to BWTD 106entering an unauthorized area or leaving an authorized area. In anotherexample, user device 116 may receive indications of user inputs frommonitoring user 118 defining a condition-action rule in which an actionis to be performed in response to BWTD 106 exceeding permissible timesor distances that monitored target 104 is allowed to travel or otherwisemove about. User device 116 may send one or more messages to monitoringcenter 112 with the condition-action rules specified by monitoring user118, and monitoring center 112 may configure or associate thecondition-action rules with the unique identifier of monitored target104 and BWTD 106.

After BWTD 106 has been attached to monitored target 104, monitoredtarget 104 may be released from custody (i.e., released from a confinedor restricted condition, such as a jail, prison, or courthouse). Asmonitored target 104 moves throughout a geographic region, such asgeographic region 101, BWTD 106 determines respective GNSS locations ofBWTD 106 and sends messages to monitoring center 112 that may include atleast a unique identifier of BWTD 106 and/or monitored target 104,unique tower identifier, GNSS coordinates (latitude, longitude), andtimestamps for when each respective GNSS coordinate has been determined.BWTD 106 may send such messages through wireless communication withtower 110, which in turns sends the messages to monitoring center 112via network 115, and in some examples one or more additional,intermediate networked devices (not shown in FIG. 1).

BWTD 106 includes one or more sensor components comprised of hardwareand/or software that detects movement of BWTD 106. In some examples, theone or more sensor components include a plurality of sensing components,such as an accelerometer, one or more directionality sensors (e.g., agyroscope, a magnetometer, and/or other sensors for determining aspatial orientation), and so on. BWTD 106 may receive acceleration datafrom the accelerometer that indicates amounts of acceleration variousaxes, such as a vertical axis and a horizontal axis. BWTD 106 maydetermine a change in the orientation (e.g., direction) of BWTD 106 foreach step based on orientation data received from the directionalitysensor (e.g., the gyroscope and/or the magnetometer). BWTD 106 maydetermine the direction of BWTD 106 relative to Earth's magnetic fieldbased on data received from the magnetometer. In some examples, BWTD 106sends raw data (e.g., acceleration over time) or processed data (e.g.,number of steps, length and direction of each step, or net distance) tomonitoring center 112 or other physically separate computing device.

As noted above, existing monitoring technology depends on GNSS data toobserve the location, movement, and behavior of monitoring targets.However, GNSS is not available in all areas, such as indoor spaces or inthe shadows of tall buildings. Thus, there may be times when BWTD 106 isunable to determine its current location using the GNSS. In other words,there may be times when BWTD 106 lose GNSS connectivity. When BWTD 106loses GNSS connectivity, BWTD 106 may output an indication thatmonitored target 104 must move to a GNSS-accessible location. In thisdisclosure, a GNSS-accessible location is a location at which BWTD 106can determine a current location of BWTD 106 using the GNSS. BWTD 106gives monitored target 104 a particular amount of time to move to aGNSS-accessible location. This amount of time is referred to as a “graceperiod.” For example, BWTD 106 may give monitored target 104 ten minutesto reach a GNSS-accessible location. Conventionally, the grace period isa fixed amount of time. If BWTD 106 is unable to determine its currentlocation using the GNSS by the time the grace period expires, userdevice 116 may alert monitoring user 118 that monitored target 104 ispotentially at an unauthorized location.

There are circumstances where BWTD 106 is at an authorized location, butBWTD 106 is unable to determine its current location using the GNSS. Forexample, if monitored target 104 sleeps or works in a basement area of abuilding, BWTD 106 may lose GNSS connectivity. In this example, thesleep or work of monitored target 104 may be frequently interrupted bythe need to go to a GNSS-accessible location. Going to a GNSS-accessiblelocation can be extremely disruptive to monitored target 104,potentially forcing monitored target 104 to change homes or jobs.Moreover, the need for monitored target 104 to frequently go to aGNSS-accessible location may increase the chances that monitored target104 is unable to reach a GNSS-accessible location, despite monitoredtarget 104 being at an authorized location. As a result, monitoringsystem 100 may alert monitoring user 118 unnecessarily. Responding tosuch unnecessary alerts may increase the costs of operating and usingmonitoring system 100.

Techniques of this disclosure may improve monitoring system 100 bypotentially reducing the number of unnecessary alerts generated bymonitoring system 100. Reducing the number of alerts may reduce thefrequency of data transfers and amount of data transferred between theBWTD and the monitoring center, which may increase battery life of theBWTD and may decrease network traffic. Reducing the number of alerts mayalso reduce the time and resources consumed by law enforcementadministrators in supervising monitored persons. Reducing the number ofalerts may ease the burden on monitored persons by reducing how oftenthe BWTD needs to reacquire a GNSS signal.

As noted above, monitoring system 100 may be configured with one or morecondition-action rules that specify actions to perform in response tospecified conditions being satisfied. Monitoring system 100 may evaluatethe condition-action rules to determine whether to perform actions, suchas generating alerts to monitoring user 118.

In accordance with one or more techniques of this disclosure, thecondition-action rules may include one or more activity-dependent rules.Activity-dependent rules correspond to various activities performed by awearer of BWTD 106. Such activities may include various forms oflocomotion, such as walking, running, driving or riding in or on a motorvehicle, bicycling, swimming, skating, skateboarding, and so on, andvarious forms of sedentary activities, such as sleeping or stayingrelatively still. In general, an activity may correspond to anidentifiable output signature of one or more sensors. In other words, asignature may correspond to a pattern of output signals or datagenerated by one or more sensors and each different activity may have adifferent signature. In general, an activity-dependent rule for aparticular activity is a condition-action rule that specifies, as acondition, that a wearer of BWTD 106 is performing the particularactivity. Accordingly, to evaluate the activity-based rules, monitoringsystem 100 (e.g., monitoring center 112 and/or BWTD 106) determines,based on data from one or more sensors, a current activity of a wearerof BWTD 106 (i.e., a current activity of monitored target 104).

Monitoring system 100 may perform various actions in response todetermining the conditions specified by an activity-dependent rule issatisfied. For example, monitoring system 100 generate an alert inresponse to determining that the conditions specified by theactivity-dependent rule are satisfied. For instance, following theexpiration of a grace period whose duration has been dynamicallyadjusted based on the activity of the wearer of BWTD 106, BWTD 106 maygenerate an alert indicating that the wearer must move to a locationwithin GNSS connectivity to avoid being in violation of parole. Thus,rather than generating such an alert in response to determining that afixed grace period has expired, monitoring system 100 may generate analert in response to determining that the conditions specified by anactivity-dependent rule have been satisfied.

Activity-dependent rules for different activities may specify differentconditions. For instance, in some examples, activity-dependent rules fordifferent activities have conditions involving different activities. Insome examples, activity-dependent rules for different activities mayspecify actions performed if BWTD 106 does not regain GNSS connectivityprior to expirations of grace periods of various durations. For example,an activity-dependent rule for sleeping may specify an action performedif BWTD 106 does not regain GNSS connectivity prior to the expiration ofan 8-hour grace period. Thus, in this example, if BWTD 106 is unable toregain GNSS connectivity and monitored target 104 is sleeping,monitoring system 100 does not generate an alert until 8 hours havepassed. In this example, monitoring system 100 may consider monitoredtarget 104 to be in violation of this activity-dependent rule if BWTD106 does not regain GNSS connectivity prior to the expiration of the8-hour grace period. However, in this example, an activity-dependentrule for walking may specify an action performed if BWTD 106 does notregain GNSS connectivity prior to the expiration of a 20-minute graceperiod. In this example, an activity-dependent rule for running mayspecify an action performed if BWTD 106 does not regain GNSSconnectivity prior to the expiration of a 5-minute grace period. Inother words, BWTD 106 and/or monitoring system 112 may dynamically adaptthe grace period for requiring GNSS connectivity as a function of adetermined activity being performed by the user. For activities that mayresult in a high level of travel during loss of GNSS connectivity, suchas a determination that the user is biking, driving or running, BWTD 106and/or monitoring system 112 may decrease the configured grace period.For activities that may result in a reduced level of travel during lossof GNSS connectivity, such as a determination that the user is sleepingor walking, BWTD 106 and/or monitoring system 112 may increase theconfigured grace period, thereby avoiding technical burdens on thenetwork and computing resources.

Thus, in more general terms, the set of activity-dependent rules mayinclude at least a first rule and a second rule. Satisfaction of thefirst vile may require the wearer of the BWTD to perform a firstactivity, the BWTD to have lost GNSS connectivity, and a first graceperiod to have expired prior to the BWTD regaining GNSS connectivity.Satisfaction of the second rule may require the wearer of the BWTD toperform a second activity, the BWTD to have lost GNSS connectivity, anda second grace period to have expired prior to the BWTD regaining GNSSconnectivity. In this example, the first activity is different from thesecond activity and the first grace period and the second grace periodhave different durations.

In this way, the activity-dependent rules may be used to adjust theduration of the grace period based on the activities of monitored target104. Thus, through the use of such activity-dependent rules, ifmonitoring system 100 determines that monitored target 104 has remainedstationary when BWTD 106 lost GNSS connectivity, monitoring system 100may use an extended grace period. However, if monitoring system 100detects that monitored target 104 is driving or running, monitoringsystem 100 may use a shortened grace period. More broadly, through theuse of the activity-dependent rules, monitoring system 100 mayadaptively set the grace period depending on an activity of monitoredtarget 104. For instance, monitoring system 100 may adaptively set thegrace period such that activities deemed harmless may extend the graceperiod while activities deemed potentially dangerous may reduce thegrace period.

Although each of the example activity-dependent rules above specifyconditions involving expirations of grace periods, otheractivity-dependent rules may specify conditions that do not involvegrace periods. For example, an activity-dependent rule for walking mayspecify an action performed if a net displacement of BWTD 106 from alocation at which BWTD 106 most recently had GNSS connectivity isgreater than a distance threshold. In this example, monitoring system100 may be able to determine the net displacement of BWTD 106 based ondata generated by sensors included in BWTD 106.

Thus, in a more general example, monitoring system 100 may determine adistance traveled. In this example, the distance traveled is a netdistance traveled by the BWTD from a location at which the one or moreprocessors were most recently able to determine the current location ofthe BWTD using the GNSS component. In this example, the set ofactivity-dependent rules includes a first rule and a second rule.Satisfaction of the first rule may require the wearer of the BWTD toperform a first activity, the BWTD to have lost GNSS connectivity, andthe distance traveled to be greater than a first threshold. Satisfactionof the second rule may require the wearer of the BWTD to perform asecond activity, the BWTD to have lost GNSS connectivity, and thedistance traveled to be greater than a second threshold. In thisexample, the first activity is different from the second activity andthe first threshold is different from the second threshold. In someexamples, the one or more sensors include an accelerometer, a gyroscope,and/or a magnetometer. As part of determining the net distance,monitoring system 100 may detect or count, based on data generated by anaccelerometer, a plurality of steps. Additionally, monitoring system 100may determine an estimated distance traveled during each step of theplurality of steps. Monitoring system 100 may also determine (e.g.,based on the data generated by one or more directionality sensors, suchas the gyroscope and/or the magnetometer), a direction of travel of eachstep of the plurality of steps. Monitoring system 100 may determine,based on the estimated distance traveled during each step and thedirection of travel of each step, the net distance between the currentlocation of the BWTD and the location at which the one or moreprocessors were most recently able to determine the current location ofthe BWTD using the GNSS component.

A condition specified by an activity-dependent rule includesub-conditions in addition to the wearer performing a particularactivity and BWTD 106 having lost GNSS connectivity. For example, anactivity-dependent rule may specify an action to be performed ifmonitored target 104 is performing activity X, BWTD 106 has lost GNSSconnectivity, and BWTD 106 has not regained GNSS connectivity prior toan expiration of a 10-minute grace period or BWTD 106 has a netdisplacement of more than fifty meters from a location at which BWTD 106was most recently had GNSS connectivity. For instance, by usingaccelerometer and magnetometer data, monitoring system 100 can determinethe net distance travelled by an offender by counting the number ofsteps the offenders has taken in certain directions. The associatedcompliance calculation (e.g., condition evaluation) for the walkingactivity then can compare the net distance travelled to a pre-definedthreshold which allows for a maximum distance travelled. Under thewalking activity, if the offender has not moved a large net distance,then monitoring system 100 adaptively adjusts the grace period to givethe offender a longer period of time to re-establish GNSS.

Other conditions specified by condition-action rules may depend on stillother types of data. For example, a condition may depend on a soundenvironment, a battery life of BWTD 106, whether other monitored targetsare within particular distance thresholds, whether detectedaccelerations of BWTD 106 are able particular thresholds, and so on.

FIG. 2 is a perspective view of an example BWTD, in accordance with oneor more aspects of the present disclosure. BWTD 106 may be configured toimplement various aspects of this disclosure. FIG. 2 illustrates onlyone particular example of BWTD 106, as shown in FIG. 1. Many otherexamples of BWTD 106 may be used in other instances. Other BWTDs mayinclude different subsets of the components than those of the example ofBWTD 106 shown in FIG. 2. As illustrated in FIG. 2, BWTD 106 may beattached to an ankle 212 of monitored target 104. Furthermore, asillustrated in FIG. 2, BWTD 106 includes a strap 214 and a housing 216.Housing 216 includes or contains a variety of components such as one ormore processors configured to perform the techniques described herein,one or more storage components for storing instructions executable bythe processor along with data, one or more GNSS components, one or moresensors, and one or more communication units. The one or morecommunication units may enable BWTD 106 to communicate wirelessly withan external device.

FIG. 3 is a block diagram illustrating example components of BWTD 106,in accordance with one or more aspects of the present disclosure. FIG. 3illustrates only one particular example of BWTD 106, as shown in FIG. 1or FIG. 2. Many other examples of BWTD 106 may be used in otherinstances and may include a subset of the components included in exampleBWTD 106 or may include additional components not shown in FIG. 3. Insome examples, BWTD 106 may run a set, subset, or superset offunctionality included in control logic 304. In some examples, theexternal housing (not shown) of BWTD 106 may have one or more attachmentcomponents (not shown), such as straps, fasteners, magnetic materials,adhesive materials or any other mechanism or material for attaching orassociating with tracking device 106A with an object to be tracked.

As shown in the example of FIG. 3, BWTD 106 may be logically dividedinto control environment 302 and hardware 328. Hardware 328 may includeone or more hardware components that provide an operating environmentfor components executing in control environment 302. Control environment302 may include operating system 324, which or may not operate withhigher privileges than other components executing in control environment302.

As shown in FIG. 3, hardware 328 includes one or more processors 330,input components 332, power source 334, storage components 338,communication units 340, output components 342, GNSS components 343, andsensor components 344. Processors 330, input components 332, powersource 334, storage components 338, communication units 340, outputcomponents 342, GNSS components 343, and sensor components 344 may eachbe interconnected by one or more communication channels 336.Communication channels 336 may interconnect each of the components 330,332, 334, 338, 340, 342, 343, and 344 for inter-component communications(physically, communicatively, and/or operatively). In some examples,communication channels 336 may include a hardware bus, a networkconnection, one or more inter-process communication data structures, orany other components for communicating data between hardware and/orsoftware.

One or more processors 330 may implement functionality and/or executeinstructions within BWTD 106. For example, processors 330 on BWTD 106may receive and execute instructions stored by storage components 338that provide the functionality of components included in controlenvironment 302. These instructions executed by processors 330 may causeBWTD 106 to store and/or modify information, within storage components338 during program execution. Processors 330 may execute instructions ofcomponents in control environment 302 to perform one or more operationsin accordance with techniques of this disclosure. That is, componentsincluded in user control environment 302 may be operable by processors330 to perform various functions described herein.

One or more input components 332 of BWTD 106 may receive input. Examplesof input are tactile, audio, kinetic, and optical input, to name only afew examples. Input components 332 of BWTD 106, in one example, includea voice responsive system, video camera, buttons, control pad,microphone or any other type of device for detecting input from a humanor machine. In some examples, input component 332 may be apresence-sensitive input component, which may include apresence-sensitive screen, touch-sensitive screen, etc.

As shown in FIG. 3, BWTD 106 may include a power source 334. In someexamples, power source 334 is a battery. Power source 334 provides powerto one or more components of BWTD 106. Examples of power source 334include, but are not necessarily limited to, batteries havingzinc-carbon, lead-acid, nickel cadmium (NiCd), nickel metal hydride(NiMH), lithium ion (Li-ion), and/or lithium ion polymer (Li-ionpolymer) chemistries. In some examples, power source 334 may have alimited capacity (e.g., 1000-3000 mAh).

One or more storage components 338 within BWTD 106 may store informationfor processing during operation of BWTD 106. In some examples, storagecomponents 338 include a temporary memory, meaning that a primarypurpose of storage components 338 is not long-term storage. Storagecomponents 338 on BWTD 106 may configured for short-term storage ofinformation as volatile memory and therefore not retain stored contentsif deactivated. Examples of volatile memories include random accessmemories (RAM), dynamic random access memories (DRAM), static randomaccess memories (SRAM), and other forms of volatile memories known inthe art.

Storage components 338, in some examples, also include one or morecomputer-readable storage media. Storage components 338 may beconfigured to store larger amounts of information than volatile memory.Storage components 338 may further be configured for long-term storageof information as non-volatile memory space and retain information afteractivate/off cycles. Examples of non-volatile memories include magnetichard discs, optical discs, floppy discs, flash memories, or forms ofelectrically programmable memories (EPROM) or electrically erasable andprogrammable (EEPROM) memories. Storage components 338 may store programinstructions and/or data associated with components included in controlenvironment 302.

One or more output components 342 of BWTD 106 generate output. Examplesof output are tactile output (e.g., haptic output, vibratory output),audio output, and video output. Output components 342 of BWTD 106, insome examples, include a display screen, a presence-sensitive screen, asound card, a video graphics adapter card, a speaker, a liquid crystaldisplay (LCD), or another type of device for generating output to ahuman or machine. In some examples, output components 342 are integratedwith BWTD 106 and physically connected to the external packaging of BWTD106. In other examples, output components 342 are physically external toand separate from BWTD 106, but are operably coupled to BWTD 106 viawired or wireless communication.

One or more communication units 340 of BWTD 106 communicate withexternal devices by transmitting and/or receiving data. For example,BWTD 106 may use communication units 340 to transmit and/or receiveradio signals on a radio network such as a cellular radio network.Examples of communication units 340 include a network interface card(e.g. such as an Ethernet card), an optical transceiver, a radiofrequency transceiver, or any other type of device that can send and/orreceive information. Other examples of communication units 340 includeBluetooth®, 3G, 4G, and Wi-Fi® radios found in mobile devices as well asUniversal Serial Bus (USB) controllers and the like. GNSS components 343receive satellite signals from satellites in a GNSS (e.g., satellites108 (FIG. 1)). Location detection component 312 may determine, based onthe received satellite signals, coordinates corresponding to a locationof BWTD 106 at a particular point in time.

In some examples, sensor components 344 include a plurality of sensingcomponents, such as accelerometer components 346, gyroscope components348, and magnetometer components 350. Gyroscope components 348 andmagnetometer components 350 may be instances of directionality sensors.Accelerometer components 346 may generate data indicative of theacceleration of BWTD 106 in at least one plane. In some examples,accelerometer components 346 include a 3-axis accelerometer that detectsacceleration in 3-dimensions and generates data indicative of theacceleration in each of the 3-dimensions. Gyroscope components 348 maygenerate data indicative of a change in the orientation (e.g.,direction) of BWTD 106 in one or more of the 3-dimensions. Asillustrated in FIG. 3, sensor components 344 may include magnetometercomponents 350. Magnetometer components 350 may detect a magnetic field(e.g., Earth's magnetic field) and may generate data indicative of thedetected magnetic field. Location detection component 312 may determinethe orientation of BWTD 106 relative to the magnetic field based on thedata generated by magnetometer components 350.

In the example of FIG. 3, control logic 304 executes in controlenvironment 302. Control logic 304 may include but is not limited to: adevice management component (DMC) 308, a communication component 310, alocation detection component 312, an activity detection component 314,and a rule processing 315. Data 306 may include one or more data stores.A data store may store data in structured or unstructured form. Exampledata stores may be any one or more of a relational database managementsystem, online analytical processing database, table, or any othersuitable structure for storing data. In the example of FIG. 3, data 306includes configuration data 316, tower data 318, location data 320, andrule data 322. Storage components 338 may store data 306.

Components such as DMC 308, communication component 310, locationdetection component 312, activity detection component 314, and ruleprocessing component 315 may perform operations described herein usingsoftware, hardware, firmware, or a mixture of both hardware, software,and firmware residing in and executing on BWTD 106. In some examples,processors 330 of BWTD 106 may execute various components when embodiedin software to perform the functionality described in this disclosure.Processors 330 may execute any of such components as or within a virtualmachine, user space application, operating system or any other operatingenvironment executing on underlying hardware.

Configuration data 316 may include one or more of: a unique identifierof BWTD 106, a unique identifier of the monitored person to which BWTD106 is assigned, and/or any other properties or parameters that controlor change the operation of tracking device 106A. Tower data 318 mayinclude records, tuples or sets, wherein each record, tuple or setspecifies one or more of: a unique identifier of a particular tower, alatitude and longitude of BWTD 106 when BWTD 106 detected or initiated acommunication session with the particular tower, a signal strength forthe tower when BWTD 106 detected or initiated a communication sessionwith the particular tower, a directional heading of BWTD 106 when BWTD106 detected or initiated a communication session with the particulartower, and/or a timestamp when BWTD 106 detected or initiated acommunication session with the particular tower.

Location data 320 may include records, tuples or sets, wherein eachrecord, tuple or set specifies one or more of: a unique identifier ofBWTD 106 and/or a monitored person wearing BWTD 106, GNSS coordinates(e.g., latitude, longitude), a timestamp when the GNSS coordinates weredetermined, GNSS signal strength when the GNSS coordinates weredetermined, signal strength of a tower when the GNSS coordinates weredetermined, and/or a directional heading of BWTD 106 when the GNSScoordinates were determined.

Rule data 322 may include a set of condition-action rules. If acondition of a condition-action rule is satisfied, monitoring system 100may perform the action of the condition-action rule. For example, ifGNSS coordinates generated by GNSS components 343 indicate that BWTD 106is in an unauthorized area, monitoring system 100 may generate an alertnotifying monitoring user 118. In some examples where the same action isalways performed if the conditions of a condition-action rule aresatisfied, an action of the condition-action rule may be implicitlydefined. For instance, if the action is always generating an alert, itmay only be necessary for conditions of rules to be explicitly defined.

Furthermore, in accordance with one or more aspects of this disclosure,the set of condition-action rules include one or more activity-dependentrules. For each respective activity-dependent rule, a condition of theactivity-dependent rule specifies that a wearer of BWTD 106 isperforming a particular activity. This disclosure describes anactivity-dependent rule as corresponding to an activity if theactivity-dependent rule has a condition specifying that a wearer of BWTD106 is performing a particular activity.

In operation, DMC 308 may initially be configured with configurationdata 316. For instance, DMC 308 may be programmed, from an externalcomputing device, with a unique identifier for BWTD 106 and/or a uniqueidentifier of the monitored person associated with or assigned to BWTD106. Once BWTD 106 has been configured with configuration data 316, themonitored person may move about one or more geographic regions.Additionally, DMC 308 may write data to storage components 338 that isreceived from monitoring center 112 or other computing devices. Data mayinclude restricted regions and/or restricted locations, configurationdata to configure one or more components of BWTD 106, information thatuniquely identifies BWTD 106 and/or monitored target 104 that is wearingBWTD 106, or any other suitable information.

Communication component 310 may initiate, manage, and terminatecommunication sessions with towers that provide cellular networkinfrastructure. In particular, as BWTD 106 moves to different geographicregions, communication component 310 may initiate communication sessionswith different towers in the different regions, where a tower may be aBase Station Transceiver in a wireless communication network, such as acellular network. In this way, communication component 310 maintainscommunication between BWTD 106 and monitoring center 112. Examples ofsuch cellular networks may include a set of one or more geographicallydispersed towers with radios, antennas and/or other communicationscomponents that provide for data communication with BWTD 106 using oneor more protocols such as 2G, 3G, 4G, Long-Term Evolution (LTE), or anyother suitable protocol. Cellular network infrastructure may provide awireless network for data communication to and from BWTD 106 over ageographically distributed area. In some examples, cellular networkinfrastructure may be owned and operated by a third-party, wireless orcellular carrier provider.

Location detection component 312 may determine the location (e.g., GNSScoordinates) of BWTD 106 based on data received from GNSS components343. For instance, GNSS components 343 may receive GNSS signals from aplurality of GNSS satellites (e.g., satellites 108 in FIG. 1). The GNSSsignals received from each GNSS satellite may include data indicating aposition of a respective GNSS satellite and a time at which therespective GNSS satellite sent the GNSS signal. Location detectioncomponent 312 may determine the latitude and longitude of BWTD 106 at aparticular point time based on the data received from the GNSSsatellites. Location detection component 312 may determine the latitudeand longitude on a periodic basis according to an interval that may beincluded in configuration data 316. The time interval may be programmedby a user, dynamically changed (e.g., based on one or more detected ordetermined events) or hard-coded. At a point in time (e.g., when a timeinterval has elapsed), upon determining the latitude and longitude,location detection component 312 may generate and store a record, tupleor set that specifies one or more of: a unique identifier of BWTD 106and/or monitored person wearing BWTD 106, GNSS coordinates (latitude,longitude), a timestamp when the GNSS coordinates (latitude, longitude)were determined, GNSS signal strength when the GNSS coordinates(latitude, longitude) were determined, signal strength of a tower whenthe GNSS coordinates (latitude, longitude) were determined, and/or adirectional heading of BWTD 106 when the GNSS coordinates (latitude,longitude) were determined. Location detection component 312 may sendlocation data 320 to monitoring center 112 of FIG. 1 in real-time,periodically, or asynchronously.

In some circumstances, location detection component 312 is unable todetermine the current location of BWTD 106. For example, GNSS components343 may be unable to receive GNSS signals from a sufficient number ofsatellites 108 (FIG. 1) such that location detection component 312 isunable to determine the geospatial location (e.g., GNSS coordinates) ofBWTD 106. For instance, GNSS components 343 may be unable to detect GNSSsignals from a sufficient number of GNSS satellites when BWTD 106 entersa building or enters a geographical area obstructed by manmade ornaturally occurring environmental features.

Activity detection component 314 may determine an activity of a wearerof BWTD 106 (i.e., monitored target 104). In one example, activitydetection component 314 uses the data generated by sensor components 344to determine the activity of monitored target 104. In some examples, thedata generated by sensor components 344 is 9-axis data. Activitydetection component 314 may use various techniques known in the art todetermine an activity of monitored target 104. In other examples,communication component 310 sends data generated by sensor components344 to a remote device, such as one or more of server devices 114. Inthis example, one or more processors of the remote device (e.g.,processors 408 of FIG. 4) may use the data generated by sensorcomponents 344 to determine the activity of monitored target 104.

Rule processing component 315 may evaluate condition-action rules storedin rule data 322. In accordance with one or more aspects of thisdisclosure, the condition-action rules evaluated by rule processingcomponent 315 may include activity-dependent rules.

Rule processing component 315 may use various types of data inevaluating condition-action rules. For instance, rule processingcomponent 315 may use location data 320 in evaluating a condition-actionrule. Furthermore, in some examples, as part of evaluating acondition-action rule, rule processing component 315 may determine adistance traveled by BWTD 106 since a most recent time locationdetection component was able to use GNSS components 343 to determine thelocation of BWTD 106. For instance, a condition-action rule may specifythat, if a BWTD 106 has lost GNSS connectivity and a wearer of BWTD 106is performing a particular activity, and if a net distance traveled isgreater than a threshold, monitoring system 100 is to generate an alert.In one example, to determine the net distance traveled, accelerometercomponents 346 generates acceleration data and rule processing component315 compares the acceleration data to a template acceleration pattern todetect a plurality of steps or strides. Furthermore, in this example,gyroscope components 348 generate orientation data and rule processingcomponent 315 compares the orientation data to a template orientationpattern to detect a plurality of steps or strides. Rule processingcomponent 315 may more accurately detect steps by comparing theacceleration data and the orientation data to the respective templatedata patterns. Additionally, rule processing component 315 may determinethe distance traveled during each step in the plurality of steps. Insome scenarios, rule processing component 315 determines the distancetraveled by each step by querying storage components 338 to retrieve apredetermined estimate of a stride length. In some instances, ruleprocessing component 315 determines the distance traveled by each stepbased on the acceleration data generated by acceleration components 346.For instance, rule processing component 315 may integrate theacceleration data to determine the distance traveled during each step.In some examples, rule processing component 315 determines the directiontraveled during each step of the plurality of steps. Rule processingcomponent 315 may determine the direction traveled based on orientationdata generated by one or more directionality sensors, such as gyroscopecomponents 348 and/or magnetometer components 350. For instance, ruleprocessing component 315 may integrate the orientation data to determinethe change in orientation or direction of BWTD 106 during each step. Insome examples, rule processing component 315 calibrates the datagenerated by gyroscope components 348 using data generated bymagnetometer components 350, which may improve the accuracy of thedetermined direction.

In some examples, rule processing component 315 determines the netdistance based on the distance traveled during each step and thedirection traveled during each step. For example, each step may berepresented by a vector that includes the distance and direction of therespective step. In these examples, rule processing component 315 maysum the vectors to determine the net distance and net direction traveledduring the plurality of steps that occurred between the last knownlocation and the current location of BWTD 106.

As part of evaluating some condition-action rules, rule processingcomponent 315 determines whether BWTD 106 is within a bounded area thatincludes the last known location of BWTD 106. In some examples, ruleprocessing component 315 determines whether BWTD 106 is within thebounded area by determining whether the net distance satisfies thethreshold distance. For instance, the bounded area may be represented bya circle and the threshold distance may be the radius of the circle. Forexample, rule processing component 315 may determine that BWTD 106 iswithin the bounded area based on determining that the net distancesatisfies (e.g., is less than or equal to) the threshold distance. Incontrast, rule processing component 315 may determine that BWTD 106 isnot within the bounded area if the net distance does not satisfy (e.g.,is greater than) the threshold distance.

In some examples, rule processing component 315 determines whether BWTD106 is within the bounded area based on the net distance and the netdirection traveled during the plurality of steps. For example, thebounded area may be represented by a shape other than a circle such thatBWTD 106 may travel outside the bounded area if traveling a certaindistance in one direction while BWTD 106 may remain within the boundedarea if traveling the same distance in a different direction. In someexamples, rule processing component 315 may determine the bounded areaby querying storage components 338 to determine coordinates defining thebounded area (e.g., 4 coordinate sets may define a rectangular boundedarea) and determine whether BWTD 106 remains within the bounded areabased on the net displacement and net direction.

In some examples, as part of evaluating a condition-action rule, ruleprocessing component 315 may perform the action specified by thecondition-action rule. For example, if a condition-action rule specifiesan action that includes generating an alert, rule processing component315 may use output components 342 to generate the alert. In someexamples, rule processing component 315 may use communication units 340to send data to one or more other devices of monitoring system 100causing the one or more other devices to perform an action specified bythe condition-action rule.

FIG. 4 is a block diagram illustrating example components of serverdevice 114A, in accordance with one or more aspects of the presentdisclosure. FIG. 4 illustrates only one particular example of serverdevice 114A in monitoring center 112, as shown in FIG. 1. Many otherexamples of server device 114A may be used in other instances and mayinclude a subset of the components included in example server device114A or may include additional components not shown in FIG. 4. In someexamples, server device 114A may be a server, tablet computing device,smartphone, wrist- or head-worn computing device, laptop, desktopcomputing device, or any other computing device that may run a set,subset, or superset of functionality included in application 428.

As shown in the example of FIG. 4, server device 114A may be logicallydivided into user space 402, kernel space 404, and hardware 406.Hardware 406 may include one or more hardware components that provide anoperating environment for components executing in user space 402 andkernel space 404. User space 402 and kernel space 404 may representdifferent sections or segmentations of memory, where kernel space 404provides higher privileges to processes and threads than user space 402.For instance, kernel space 404 may include operating system 420, whichoperates with higher privileges than components executing in user space402.

As shown in FIG. 4, hardware 406 includes one or more processors 408,input components 410, storage components 412, communication units 414,and output components 416. Processors 408, input components 410, storagecomponents 412, communication units 414, and output components 416 mayeach be interconnected by one or more communication channels 418.Communication channels 418 may interconnect each of the components 408,410, 412, 414, and 416 for inter-component communications (physically,communicatively, and/or operatively). In some examples, communicationchannels 418 may include a hardware bus, a network connection, one ormore inter-process communication data structures, or any othercomponents for communicating data between hardware and/or software.

One or more processors 408 may implement functionality and/or executeinstructions within server device 114A. For example, processors 408 onserver device 114A may receive and execute instructions stored bystorage components 412 that provide the functionality of componentsincluded in kernel space 404 and user space 402. These instructionsexecuted by processors 408 may cause server device 114A to store and/ormodify information, within storage components 412 during programexecution. Processors 408 may execute instructions of components inkernel space 404 and user space 402 to perform one or more operations inaccordance with techniques of this disclosure. That is, componentsincluded in user space 402 and kernel space 404 may be operable byprocessors 408 to perform various functions described herein.

One or more input components 410 of server device 114A may receiveinput. Examples of input are tactile, audio, kinetic, and optical input,to name only a few examples. Input components 410 of server device 114A,in one example, include a mouse, keyboard, voice responsive system,video camera, buttons, control pad, microphone or any other type ofdevice for detecting input from a human or machine. In some examples,input component 410 may be a presence-sensitive input component, whichmay include a presence-sensitive screen, touch-sensitive screen, etc.

One or more output components 416 of server device 114A may generateoutput. Examples of output are tactile, audio, and video output. Outputcomponents 416 of server device 114A, in some examples, include apresence-sensitive screen, sound card, video graphics adapter card,speaker, cathode ray tube (CRT) monitor, liquid crystal display (LCD),or any other type of device for generating output to a human or machine.Output components may include display components such as cathode raytube (CRT) monitor, liquid crystal display (LCD), Light-Emitting Diode(LED) or any other type of device for generating tactile, audio, and/orvisual output.

Output components 416 may be integrated with server device 114A in someexamples. In other examples, output components 416 may be physicallyexternal to and separate from server device 114A, but may be operablycoupled to server device 114A via wired or wireless communication. Anoutput component may be a built-in component of server device 114Alocated within and physically connected to the external packaging ofserver device 114A (e.g., a screen on a mobile phone). In anotherexample, an output component, such as a presence-sensitive screen, maybe an external component of server device 114A located outside andphysically separated from the packaging of server device 114A (e.g., amonitor, a projector, etc. that shares a wired and/or wireless data pathwith a tablet computer). Output components 416 may provide haptic,vibratory or other tactile output.

One or more communication units 414 of server device 114A maycommunicate with external devices by transmitting and/or receiving data.For example, server device 114A may use communication units 414 totransmit and/or receive radio signals on a radio network such as acellular radio network. Examples of communication units 414 include anetwork interface card (e.g. such as an Ethernet card), an opticaltransceiver, a radio frequency transceiver, or any other type of devicethat can send and/or receive information. Other examples ofcommunication units 414 may include Bluetooth®, 3G, 4G, and Wi-Fi®radios found in mobile devices as well as Universal Serial Bus (USB)controllers and the like.

One or more storage components 412 within server device 114A may storeinformation for processing during operation of server device 114A. Insome examples, storage device 412 is a temporary memory, meaning that aprimary purpose of storage device 412 is not long-term storage. Storagecomponents 412 on server device 114A may configured for short-termstorage of information as volatile memory and therefore not retainstored contents if deactivated. Examples of volatile memories includerandom access memories (RAM), dynamic random access memories (DRAM),static random access memories (SRAM), and other forms of volatilememories known in the art.

Storage components 412, in some examples, also include one or morecomputer-readable storage media. Storage components 412 may beconfigured to store larger amounts of information than volatile memory.Storage components 412 may further be configured for long-term storageof information as non-volatile memory space and retain information afteractivate/off cycles. Examples of non-volatile memories include magnetichard discs, optical discs, floppy discs, flash memories, or forms ofelectrically programmable memories (EPROM) or electrically erasable andprogrammable (EEPROM) memories. Storage components 412 may store programinstructions and/or data associated with components included in userspace 402 and/or kernel space 404.

As shown in FIG. 4, application 428 executes in user space 402 of serverdevice 114A. Application 428 may be logically divided into presentationlayer 422, application layer 424, and data layer 426. Presentation layer422 may include user interface (UI) component 425, which generates andrenders user interfaces of application 428. Application layer 424 mayinclude location management component (LMC) 427, rule enforcementcomponent (REC) 429, and notification component 430.

Data layer 426 may include one or more data stores. A data store maystore data in structure or unstructured form. Example data stores may beany one or more of a relational database management system, onlineanalytical processing database, table, or any other suitable structurefor storing data. Monitored person data 434 may include informationdescriptive of monitored persons and/or monitoring users. Example data,may include unique identifier for monitored person or user, name,address, phone number, notes, or any other descriptive information of amonitored person or monitored person, such as a type of offense, adegree of offense (e.g., a legal degree of offense, such as seconddegree battery), or the like.

Location data 436 may include GNSS locations of BWTDs and other dataassociated with the GNSS locations. For instance, a record or otherinstance of location data in location data 436 may include, but is notlimited to, any one or more of: unique identifier of BWTD and/ormonitored person wearing BWTD, timestamp, GNSS coordinates (latitude,longitude), GNSS signal strength, signal strength of cellular tower, anddirectional heading of BWTD, speed at which a BWTD is traveling, whethera BWTD is at rest, an ambient temperature in which a BWTD is located,whether a BWTD is in motion without a GNSS signal, or the like. The dataincluded in a record or other instance of location data in location data436 may be a tuple or set of data sent by a BWTD to monitoring center112, as described in FIG. 1.

Data layer 426 also includes monitoring rules data 438. Monitoring rulesdata 438 may include condition-action rules as described elsewhere inthis disclosure. The condition-action rules may be based on varioustypes of data such as, one or more of: a restricted area, a permissiblearea, a time period for permitted travel with respect to arestricted/permissible area, permissible/restricted users who can orcannot be within a threshold distance of the monitored person, graceperiods, or any other property, rule, condition, to name only a fewexamples. In some examples, monitoring rules 438 defines a permissiblebounded area that one or more monitored persons are permitted to travelwhen the BWTD assigned to the respective monitored person is unable todetermine its current GNSS coordinates. For example, monitoring rules438 may include, for one or more monitored persons, a rule having acondition specifying a respective threshold distance that the monitoredperson is permitted to travel when the BWTD assigned to that monitoredperson is unable to determine its current GNSS coordinates. As anotherexample, monitoring rules 438 may include, for one or more monitoredpersons, a rule having a condition based on a set of GNSS coordinatesthat form a bounded area in which the respective monitored person ispermitted to travel. Thus, in some examples, monitoring rules 438 mayspecify conditions based on one or more bounded areas that arecustomized to the respective monitored persons. In some instances, themonitoring rules defined by monitoring rules data 438 may be establishedbased on conditions of release or parole of a monitored person. However,the monitoring rules need not be court mandated.

In operation, BWTD 106 may be attached and assigned to monitored target104. LMC 427 may receive a unique identifier of BWTD 106 and/or a uniqueidentifier of monitored target 104. LMC 427 may store data defining anassociation between the unique identifier of BWTD 106 and the uniqueidentifier of monitored target 104. As monitored target 104 moves withinone or more different geographic regions, LMC 427 may receive locationdata from BWTD 106 including, but not limited to: a unique identifier ofBWTD 106 and/or monitored person wearing BWTD 106, GNSS coordinates(latitude, longitude), a timestamp when the GNSS coordinates (latitude,longitude) were determined, GNSS signal strength when the GNSScoordinates (latitude, longitude) were determined, signal strength of atower when the GNSS coordinates (latitude, longitude) were determined,and/or a directional heading of BWTD 106 when the GNSS coordinates(latitude, longitude) were determined. In some scenarios, location data436 may also include a timestamp when GNSS coordinates of BWTD 106 werenot able to be determined and the last known location of BWTD 106. Inthese scenarios, location data may also include motion data generated byone or more sensor components 344 of FIG. 3, and/or a net distance andnet direction from the last known location of BWTD 106. LMC 427 maystore such location data within location data 436.

REC 429 may determine whether any other property, rule, condition ofmonitoring rules data 438 is satisfied, and which may include data thatdefines, one or more of: activity-dependent rules, a restricted area, apermissible area, a time period for permitted travel with respect to arestricted/permissible area, permissible/restricted users who can orcannot be within a threshold distance of the monitored person, or anyother property, rule, condition. For instance, REC 429 may determinewhether any other property, rule, condition is satisfied based onreceiving one or more of GNSS locations from LMC 427, location data 436,and monitoring rules data 438.

While BWTD 106 is described in FIGS. 1-3 as determining whetherconditions of various condition-action rules have been satisfied, insome examples, server device 114A determines whether conditions of thecondition-action rules have been satisfied. For example, REC 429 ofserver device 114A may determine that a condition of a condition-actionrule has been satisfied when a grace period has expired or when a netdistance traveled by BWTD 106 is greater than a threshold. Responsive todetermining that a condition of an activity-dependent rule is satisfied,REC 429 may perform an action, such as causing notification component430 to generate an alert.

Notification component 430 generate alerts. In some examples, an alertindicates that monitoring target is potentially at an unauthorizedlocation. For example, notification component 430 may send notifications(or messages) to computing devices external to server device 114A thatcause such computing devices to output alerts, which may be visual,audio, haptic or any other type of discernable feedback. In this way,violations, statuses, or any other information may be communicated todevices of monitored persons and monitoring users. In some examples,events that cause notifications or messages to be sent by notificationcomponent 430 may also be logged by LMC 427, REC 429, and/ornotification component 430 in monitored person data 434.

In some examples, UI component 425 acts as an intermediary betweenvarious components and modules of server device 114A to process and sendinput detected by input devices to other components and modules, andgenerate output from other components and modules that may be presentedat one or more output devices. For instance, UI component 425 maygenerate one or more user interfaces for display, which may include dataand/or graphical representations of maps, alerts, reports, or othercommunications as described in this disclosure.

According to aspects of this disclosure, application layer 424 includesrule adjustment component 432. In general, rule adjustment component 432may enable server device 114A to adjust condition-action rules. Forinstance, rule adjustment component 432 may enable server device 114A toadjust a boundary of an area that the monitored target 104 assigned towear BWTD 106 is permitted to traverse when BWTD 106 is unable todetermine its GNSS coordinates. The updated boundary may correspond toonly the first location (e.g., a monitored person's place of employment)or may be a global boundary for all locations (e.g., the location of themonitored person whenever the BWTD loses a GNSS signal).

In accordance with some examples of this disclosure, REC 429 may receivedata generated by sensors of BWTD 106. REC 429 may determine an activityof monitored target 104 based on the data generated by the sensors. REC429 may use various techniques known in the art for determining theactivity of the user based on the data generated by the sensors.Additionally, in some examples, REC 429 may determine, based on the datagenerated by the sensors, a distance traveled by BWTD 106. REC 429 mayuse the techniques described above with respect to rule processingcomponent 315 (FIG. 3) to determine the distance traveled by BWTD 106.

FIG. 5A is an example signal diagram in which monitoring system 100 doesnot use an activity-based rule for car motion. FIG. 5B is an examplesignal diagram in which monitoring system 100 uses an activity-basedrule for car motion, in accordance with one or more aspects of thisdisclosure. In FIG. 5A and FIG. 5B, each line indicates whether a signalis active or inactive.

A BWTD of FIG. 5A and a BWTD of FIG. 5B may both lose a GNSS signal attime 500 and may both determine that GNSS connectivity has been lost attime 502. Since the BWTD of FIG. 5A does not determine an activity of awearer of the BWTD, the BWTD of FIG. 5A does not detect an accelerationat time 504 consistent with car motion. Hence, in FIG. 5A, the“acceleration is detected” signal is always inactive. Because the BWTDof FIG. 5A has lost GNSS connectivity, the BWTD of FIG. 5A starts agrace period which expires at time 508.

In contrast, the BWTD of FIG. 5B determines the activity of a wearer ofthe BWTD and hence detects, at time 504, an acceleration consistent withcar motion. In the example of FIG. 5B, an activity-dependent rule forcar motion specifies that the BWTD must regain GNSS connectivity priorto the expiration of a grace period shorter than the grace period usedin FIG. 5A. Hence, if the BWTD of FIG. 5B does not regain GNSSconnectivity by time 506, the wearer of the BWTD of FIG. 5B may be inviolation. Note that time 506 is earlier than time 508. This shortergrace period may be desirable because the wearer is engaged in anactivity deemed dangerous. In another example, an activity-dependentrule for sleeping may provide a grace period that expires after time508.

FIG. 6 is a flow diagram illustrating an example operation of monitoringsystem 100, in accordance with one or more aspects of this disclosure.While described with respect to monitoring system 100 of FIG. 1, itshould be understood that the process described with respect to FIG. 6may be carried out by a variety of other systems.

In the example of FIG. 6, BWTD 106 determines whether a current locationof BWTD 106 can be determined using GNSS components 343 (FIG. 3) of BWTD106 (600). For example, GNSS components 343 of BWTD 106 may receive GNSSsignals from a threshold number (e.g., three or more) GNSS satellites108 and may determine GNSS coordinates of BWTD 106 based on the receivedGNSS signals according to algorithms well-known in the art. Each signalreceived from a respective satellite 108 includes data such as thelocation of the respective satellite 108 and the time at which the datawas sent by the respective satellite. BWTD 106 may use trilateration todetermine the location of BWTD 106 based on the data in the receivedGNSS signals. In some examples, BWTD 106 is unable to determine thecurrent location of BWTD 106 using GNSS components 343 when GNSScomponents 343 receiving GNSS signals from fewer than the thresholdnumber of satellites 108 such that BWTD 106 is unable to determine thecurrent location of BWTD 106 using the GNSS components 343.

Responsive to determining the current location of BWTD 106 using GNSScomponents 343 (“YES” branch of 600), monitoring system 100 may continueperforming normal monitoring activity (602). For instance, BWTD 106 mayagain determine whether the current location of BWTD 106 can bedetermined using GNSS components 343. Furthermore, in some examples,BWTD 106 stores GNSS coordinates and timestamps for sets of GNSScoordinates. In some examples, BWTD 106 sends a unique identifier forBWTD 106, GNSS coordinates, a timestamp, and/or other information tomonitoring center 112 (FIG. 1), where the unique identifier, GNSScoordinates, and timestamp may be stored by one or more of serverdevices 114 (FIG. 1). In normal monitoring activity, monitoring system100 (e.g., monitoring center 112, user device 116) may generate an alertif the GNSS coordinates sent by BWTD 106 indicate that BWTD 106 is notin an authorized location.

Furthermore, in the example of FIG. 6, responsive to determining thatthe current location of BWTD 106 cannot be determined using GNSScomponents 343 (“NO” branch of 600), monitoring system 100 maydetermine, based on data generated by one or more sensors (e.g., sensorcomponents 344 (FIG. 3)), an activity of a wearer of BWTD 106 (604). Theactivity of the wearer may be a form of locomotion or a sedentaryactivity. Monitoring system 100 may determine the activity of the wearerof BWTD 106 in various ways. An example technique for determining theactivity of the wearer is described elsewhere in this disclosure withrespect to FIG. 7 through FIG. 9. In some examples, monitoring system100 determines the activity of the wearer of the BWTD based on datagenerated by the accelerometer, data generated by the gyroscope, anddata generated by the magnetometer. In some examples, BWTD 106determines the activity of the wearer. In some examples, one or more ofserver devices 114 receive sensor data and use the sensor data todetermine the activity of the wearer of BWTD 106.

In other examples, monitoring system 100 does not wait to determine theactivity of the wearer of BWTD 106 until after determining that BWTD 106has lost GNSS connectivity. For instance, monitoring system 100 maydetermine the current activity of the wearer of BWTD 106 on a periodicbasis regardless of whether BWTD 106 has GNSS connectivity.

Furthermore, in the example of FIG. 6, monitoring system 100 maydetermine, based on the activity of the wearer of BWTD 106 and based ona determination that the current location of BWTD 106 cannot bedetermined using the GNSS component, whether to perform an action (606).In other words, monitoring system 100 may calculate compliance for theactivity of the wearer. For example, monitoring system 100 may beconfigured with a set of condition-action rules. Monitoring system 100may make the determination to perform the action based on a condition ofa condition-action rule being satisfied. The condition-action-rule mayspecify the action. The condition-action rules may include one or moreactivity-dependent rules. As described elsewhere in this disclosure, oneof the conditions of an activity dependent rule is that the wearer ofBWTD 106 is performing a particular activity. For instance, eachrespective activity-dependent rule in a set of activity-dependent rulesmay specify a condition that is satisfied if the wearer of BWTD 106performs a particular activity of a plurality of activities and if thecurrent location of BWTD 106 is not determinable using the GNSScomponent. There may be different activities for each activity, eachthere may be a different compliance calculation for each activity (e.g.,walking, driving, etc.). In some examples, the action/compliancecalculation determines whether an offender is in violation of parole.

In some examples, BWTD 106 evaluates the condition-action rules. Inother examples, a device in monitoring system 100 other than BWTD 106evaluates the condition-action rules. For instance, one or more ofserver devices 114 may evaluate the condition-action rules. In oneexample, the device may receive from BWTD 106 an indication of theactivity of the wearer of BWTD 106 or determine, based on data generatedby sensor components 344 of BWTD 106, the activity of the wearer of BWTD106. In this example, the device may evaluate the condition-action rulesbased on the activity of the wearer of BWTD 106.

Responsive to a determination not to perform the action (“NO” branch of606), BWTD 106 may again determine whether the current location of BWTD106 is determinable using GNSS components 343 (600). In other words,BWTD 106 may determine again whether BWTD 106 has GNSS connectivity.However, responsive to a determination to perform the action (“YES”branch of 606), monitoring system 100 may perform the action (608). Theaction may be specified by a condition-action rule whose condition isdetermined to be satisfied in action (606). In some examples, as part ofperforming the action, monitoring system 100 generates an alert. Thus,since different activities may be associated with different actions,alerts may be tuned to specified detected activities. The alert maycomprise an indication that BWTD 106 is potentially at an unauthorizedlocation. In some examples, performing the action comprises sending amessage to user device 116 of monitoring user 118. Various devices inmonitoring system 100 may output the alert. For example, BWTD 106 maysend a message to another computing device (e.g., server devices 114 ofmonitoring center 112, or to a mobile device associated with themonitored target 104 assigned to wear BWTD 106) indicating BWTD 106 ispotentially at an unauthorized location. The unauthorized location maybe any location at which the wearer of BWTD 106 is not authorized to be.As another example, BWTD 106 may output a notification (e.g., audible,visual, or tactile) indicating that BWTD 106 is potentially at anunauthorized location. In some examples, BWTD 106 may output anotification instructing the wearer to move to a GNSS-accessiblelocation. For instance, BWTD 106 may vibrate, which may indicate tomonitored target 104 that he or she should return to an authorizedlocation or proceed to an area where BWTD 106 is able to determine thecurrent location of BWTD 106 using GNSS components 343.

In other examples, a device of monitoring system 100 other than BWTD 106generates the alert. For example, server devices 114 may generate thealert. In another example, BWTD 106 may send, and server devices 114 mayreceive, data indicating that the selected rule has been violated. Inthis example, in response to receiving the data indicating that theselected rule has been violated, server devices 114 may generate thealert.

As noted elsewhere in this disclosure, various devices and components inmonitoring system may perform various actions. For example, BWTD 106 mayinclude the GNSS component, one or more sensors, and BWTD 106 mayinclude one or more processors in the set of processors. In thisexample, one or more processors in BWTD 106 to perform at least one of:determining that the current location of BWTD 106 cannot be determinedusing the GNSS component; determining, based on the data generated bythe one or more sensors, the activity of the wearer of BWTD 106;determining, based in part on the activity of the wearer of BWTD 106 andbased on the determination that the current location of BWTD 106 cannotbe determined using the GNSS component, whether to perform the action;and performing the action in response to the determination to performthe action. In another example, a server device remote from BWTD 106(e.g., server device 110A) may include one or more processors in the setof processors. Instructions may cause the one or more processors in theserver device to perform at least one of: determining that the currentlocation of BWTD 106 cannot be determined using the GNSS component;determining, based on the data generated by the one or more sensors, theactivity of the wearer of BWTD 106; determining, based in part on theactivity of the wearer of BWTD 106 and based on the determination thatthe current location of BWTD 106 cannot be determined using the GNSScomponent, whether to perform the action; and performing the action inresponse to the determination to perform the action.

FIG. 7 is a flow diagram illustrating an example operation of abody-worn tracking device (BWTD) to determine an activity, in accordancewith one or more aspects of this disclosure. In step (700), a movementsensor (e.g., accelerometer components 346) measures the movement of aperson wearing BWTD 106. When BWTD 106 measures the movement of theperson, the data associated with that measurement may be in a variety offorms or units, and may depend on the type of movement sensor includedin BWTD 106. As an example, if an accelerometer is used as a sensor,measurement may be quantified in meters per second per second (m/s2) org-force (g). A gyroscope may quantify data as torque measured in Newtonmeters (N·m). The data collected to measure movement can be collected atany desired sample rate. In some instances, the sample rate may be inthe range of one (1) Hz to twenty (20) Hz. Sampling occurs over a seriesof time windows such that there are multiple samples taken per timewindow. An exemplary time window may be in the range of 1 to 10 seconds,more specifically, in the range of 4 to 8 seconds, and for example, anexemplary time window may last for 6 seconds.

In step (702), BWTD 106 calculates at least one numerical descriptorassociated with the data sampled over one or more time windows. Thenumerical descriptor is a number computed based on the data sampled froma signal measured by the movement sensor. The numerical descriptor maybe based on a single measured signal or on multiple measured signals.For example, when the movement sensor detects inertial movement alongthree axes, the numerical descriptor may be calculated based on the dataassociated with each of the three axes. The numerical descriptor may bedetermined for each data point related to the measured signal(s) or maybe based on a lower sampling rate than the data from the measuredsignals. In some instances, two or more numerical descriptors may beassociated with each time window.

In step (704), BWTD 106 assigns a preliminary activity label to eachtime window. In some instances, BWTD 106 assigns more than onepreliminary activity label to a given time window. The preliminaryactivity label may be based on the use of the measured signal or thenumerical descriptor. For example, BWTD 106 may use a decision tree todetermine a preliminary activity for a given time window. Depending onthe value of the data from the measured signal and the numericaldescriptor, the confidence indicator associated with the assignment of agiven preliminary activity label to a given time window may vary. Aconfidence indicator may be a scalar number, a probability, or someother method of designating confidence of the accuracy of the givenpreliminary activity label. In instances where more than one preliminaryactivity labels is assigned to a time window, each preliminary activitylabel may also have a confidence indicator associated with it. Examplesof preliminary activity labels include: walking, driving, sleeping,sitting, running, eating, and bicycling. Other preliminary activitylabels may also be assigned depending on the importance of identifyingvarious activities.

In step (706), BWTD 106 determines whether additional analysis is to beperformed prior to assigning a final activity label in step (710). Thedetermination of whether to perform the additional analysis may dependon a variety of factors. In one configuration, it may be dependent onthe confidence indicator associated with the particular time window. Forexample, if a confidence indicator is indicated as a probability, theconfidence indicator having a value below a predefined thresholdprobability may require additional analysis prior to assigning a finalactivity label. In instances where BWTD 106 assigns more than onepreliminary activity label, with each preliminary activity label havinga confidence indicator within a predefined margin of each other, BWTD106 may then determine to perform additional analysis. In such aconfiguration, BWTD 106 may adjust the predefined margin over time.

In other configurations, BWTD 106 may determine whether to performadditional analysis when the preliminary activity label is a commonlyconfused preliminary activity. Examples of commonly confused activitiesmay be slow moving, low energy activities such as sitting compared todriving or fast moving, high energy activities like running comparedagainst bicycling. In other instances, the current device status may bea factor for determining whether to perform additional analysis. Forexample, if the activity recognition device has a “low battery” state,this factor may weigh in favor of performing additional analysis priorto assigning a final activity label to a time window. Additionally, alow battery status may be a condition for the current device to senddata to an exterior or external processor for additional processingprior to determining a final activity label.

If BWTD 106 determines that no additional analysis should be performed(“NO” branch of 706), BWTD 106 assigns a final activity label to thetime window as shown in step (710). However, if BWTD 106 determines thatadditional analysis should be performed (“YES” branch of 706), theactivity recognition proceeds to step (708) to perform additionalanalysis.

In step (708), where BWTD 106 determines that additional analysis shouldbe performed, the analysis may be performed locally on BWTD 106, or maybe performed remotely by an external processor, such as some type ofcentral monitoring system including, but not limited, computation in acloud environment. Additional analysis may include computationalescalation, such as performing more complex or resource intensivecomputations than were performed for the purpose of determining apreliminary activity label. Additional analysis may include at least oneof the following algorithm techniques: neural networks, Bayesiananalysis, random forest, support vector machine, and multi-leveldecision tree.

In step (710), BWTD 106 assigns a final activity label to the timewindow. In some instances, BWTD 106 has not have performed additionalanalysis and the final activity label is the same as the preliminaryactivity label. In other instances, BWTD 106 assigns the final activitylabel to the time window based on the preliminary activity label for thetime window and at least one final activity label for at least one priortime window. In some instances, BWTD 106 may transmit an alarm signal toa central monitoring system (e.g., monitoring system 112) upondetermination of a particular final activity label.

FIG. 8 is an accelerometer data graph 50 showing exemplary data of BWTD106 worn by an individual over a period of approximately 384 seconds.Graph 800 shows the magnitude of three axes 804, 805 and 806 of movementas measured by an accelerometer, across a time axis 801. Data axis 84,805, 806 includes both a static component (driven by gravity) and adynamic component. The sample rate for this particular graph was 20 Hz,the sampling period extends over 384 seconds.

FIG. 9 shows graph 900 illustrating belief values for activity labelsassociated with the movement data from FIG. 8 over multiple timewindows. The horizontal axis 901 shows time over 6-second time windows.Shorter or longer time windows could be used consistent with the presentdisclosure. The vertical axis 902 shows belief values related to each ofthe activities, walking 904, driving 905 or resting 906, during a giventime window. Belief values can be associated with a likelihood that agiven activity is being performed during a given time window. Beliefvalues differ from confidence indicators in that the sum of all beliefvalues for all activities for a particular time window is 1.0.

The top layer of activity labels indicates the actual activity labels907 for the activity being performed by the person wearing the activitymonitoring device as recorded by that individual. During approximatelythe first seven time windows, the individual was walking. During timewindows 8-45, the individual was resting. From time windows 45 to 57,the individual was walking again. And during time windows 58-64, theindividual was resting.

The bottom layer of activity labels indicates preliminary activitylabels 909 for each time window based on the accelerometer dataassociated with that time window as shown in FIG. 8. There are morefrequent transitions between activities as shown in the preliminaryactivity labels 909 than when compared to actual activity labels 907.

Final activity labels 908, shown directly below actual activity labels907 show changes made to the preliminary activity labels 909 afteradditional analysis. The additional analysis was based in part on theconfidence indicator for the assigned activity during a given timewindow. As can be seen, the final activity labels 908 have a high degreeof accuracy when compared with actual activity labels 907. Confidenceindicators for walking 904, driving 905 and resting 906 are not shown inFIG. 9. However, a confidence indicator for the preliminary activitylabel for each time window could be calculated the belief values.

For example, in FIG. 9, the belief value for each activity isrepresented by the lines 904, 905, 906. As the actual activity label 907changes, the associated belief values change. A confidence indicator forthe preliminary activity label 909 could be derived by looking at howclose the belief values are to one another. For example, during timewindow 11, all three belief values are close to one another, i.e. allroughly around 0.33. During this time window, a calculated confidenceindicator would be very low because the belief values indicate that allactivities have an equal chance of being the actual activity of theuser. In this case, the device may send data related to time window 11to a remote processor for escalated or additional processing.

FIG. 10 is a flowchart illustrating an example operation of thisdisclosure, in accordance with one or more aspects of this disclosure.In the example of FIG. 10, when the GNSS signal is not available to BWTD106 (“NO” branch of 1000), sensor data is collected (1002) and used torecognize an activity (1004). If the GNSS signal is available to BWTD106 (“YES” branch of 1000), normal operation of monitoring system 100continues (1006). After activity recognition when the GNSS signal is notavailable to BWTD 106, monitoring system 100 may calculate compliancespecifically for the type of activity detected (e.g., performs one ormore of activities 1008A-1008N). For example, monitoring system 100 mayevaluate a condition of a condition-action rule for the determinedactivity. Thus, in the example of FIG. 10, there may be a differentcompliance calculation for each activity (e.g., walking, driving, etc.).Monitoring system 100 calculates a total compliance for the period inwhich BWTD 106 has lost the GNSS signal (1010). In the example of FIG.10, the compliance calculation determines whether or not the offender isin violation of parole. During this compliance calculation step,monitoring system 100 can adaptively adjust whether to alert a paroleofficer (1014). This alert is timed to the specific activity that wasdetected. Thus, the ability to differentiate activities of the offenderusing accelerometer data enables us to be able to adaptively adjust thetime until we alert the parole officer.

FIG. 11 is an example chart illustrating acceleration data capturedwhile driving a car. In the example of FIG. 11, the car is alreadyrunning at the start. Then the car is put into gear and accelerated tohighway speed. The car is driven along a countryside highway. Brakingoccurs near the end. The car is parked at the end of data collection. Ifmonitoring system 100 integrates over the “car accelerates” portion ofthis plot, monitoring system 100 can identify the car accelerationevent.

In one or more examples, the functions described may be implemented inhardware, software, firmware, or any combination thereof. If implementedin software, the functions may be stored on or transmitted over, as oneor more instructions or code, a computer-readable medium and executed bya hardware-based processing unit. Computer-readable media may includecomputer-readable storage media, which corresponds to a tangible mediumsuch as data storage media, or communication media including any mediumthat facilitates transfer of a computer program from one place toanother, e.g., according to a communication protocol. In this manner,computer-readable media generally may correspond to (1) tangiblecomputer-readable storage media, which is non-transitory or (2) acommunication medium such as a signal or carrier wave. Data storagemedia may be any available media that can be accessed by one or morecomputers or one or more processors to retrieve instructions, codeand/or data structures for implementation of the techniques described inthis disclosure. A computer program product may include acomputer-readable medium.

By way of example, and not limitation, such computer-readable storagemedia can comprise RAM, ROM, EEPROM, CD-ROM or other optical diskstorage, magnetic disk storage, or other magnetic storage devices, flashmemory, or any other medium that can be used to store desired programcode in the form of instructions or data structures and that can beaccessed by a computer. Also, any connection is properly termed acomputer-readable medium. For example, if instructions are transmittedfrom a website, server, or other remote source using a coaxial cable,fiber optic cable, twisted pair, digital subscriber line (DSL), orwireless technologies such as infrared, radio, and microwave, then thecoaxial cable, fiber optic cable, twisted pair, DSL, or wirelesstechnologies such as infrared, radio, and microwave are included in thedefinition of medium. It should be understood, however, thatcomputer-readable storage media and data storage media do not includeconnections, carrier waves, signals, or other transient media, but areinstead directed to non-transient, tangible storage media. Disk anddisc, as used, includes compact disc (CD), laser disc, optical disc,digital versatile disc (DVD), floppy disk and Blu-ray disc, where disksusually reproduce data magnetically, while discs reproduce dataoptically with lasers. Combinations of the above should also be includedwithin the scope of computer-readable media.

Instructions may be executed by one or more processors, such as one ormore digital signal processors (DSPs), general purpose microprocessors,application specific integrated circuits (ASICs), field programmablelogic arrays (FPGAs), or other equivalent integrated or discrete logiccircuitry. Accordingly, the term “processor”, as used may refer to anyof the foregoing structure or any other structure suitable forimplementation of the techniques described. In addition, in someaspects, the functionality described may be provided within dedicatedhardware and/or software modules. Also, the techniques could be fullyimplemented in one or more circuits or logic elements.

The techniques of this disclosure may be implemented in a wide varietyof devices or apparatuses, including a wireless handset, an integratedcircuit (IC) or a set of ICs (e.g., a chip set). Various components,modules, or units are described in this disclosure to emphasizefunctional aspects of devices configured to perform the disclosedtechniques, but do not necessarily require realization by differenthardware units. Rather, as described above, various units may becombined in a hardware unit or provided by a collection ofinteroperative hardware units, including one or more processors asdescribed above, in conjunction with suitable software and/or firmware.

It is to be recognized that depending on the example, certain acts orevents of any of the methods described herein can be performed in adifferent sequence, may be added, merged, or left out altogether (e.g.,not all described acts or events are necessary for the practice of themethod). Moreover, in certain examples, acts or events may be performedconcurrently, e.g., through multi-threaded processing, interruptprocessing, or multiple processors, rather than sequentially.

In some examples, a computer-readable storage medium includes anon-transitory medium. The term “non-transitory” indicates, in someexamples, that the storage medium is not embodied in a carrier wave or apropagated signal. In certain examples, a non-transitory storage mediumstores data that can, over time, change (e.g., in RAM or cache).

Various examples have been described. These and other examples arewithin the scope of the following claims.

What is claimed is:
 1. A system for tracking a location of a body-worn tracking device (BWTD), the system comprising: a global navigation satellite system (GNSS) component; one or more sensors; a set of one or more processors; and one or more memory devices comprising: instructions that, when executed by the one or more processors, cause the one or more processors to: determine whether a current location of the BWTD can be determined using the GNSS component; determine, based on data generated by the one or more sensors, an activity of a wearer of the BWTD, the activity of the wearer being a form of locomotion or a sedentary activity; and responsive to determining the activity of the wearer of the BWTD and a determination that the current location of the BWTD cannot be determined using the GNSS component, performing an action, wherein the instructions cause the one or more processors to: (i) determine whether to perform the action based on whether a condition specified by an activity-dependent rule in a set of activity-dependent rules is satisfied, each respective activity-dependent rule in the set of activity-dependent rules specifying a condition that is satisfied if the wearer of the BWTD performs a particular activity of a plurality of activities and if the current location of the BWTD is not determinable using the GNSS component, (ii) determine a distance traveled, the distance traveled being a net distance traveled by the BWTD from a location at which the one or more processors were most recently able to determine the current location of the BWTD using the GNSS component, wherein the set of activity-dependent rules includes a first rule and a second rule, satisfaction of the first rule requiring the wearer of the BWTD to perform a first activity, the BWTD to have lost GNSS connectivity, and the distance traveled to be greater than a first threshold, satisfaction of the second rule requiring the wearer of the BWTD to perform a second activity, the BWTD to have lost GNSS connectivity, and the distance traveled to be greater than a second threshold, and the first activity being different from the second activity, and the first threshold being different from the second threshold, wherein the one or more sensors include an accelerometer and a directionality sensor, the directionality sensor comprising a gyroscope or a magnetometer, wherein instructions that cause the one or more processors to determine the net distance cause the one or more processors to: detect, based on data generated by an accelerometer, a plurality of steps; determine an estimated distance traveled during each step of the plurality of steps; determine, based on the data generated by the directionality sensor, a direction of travel of each step of the plurality of steps; and determine, based on the estimated distance traveled during each step and the direction of travel of each step, the net distance between the current location of the BWTD and the location at which the one or more processors were most recently able to determine the current location of the BWTD using the GNSS component.
 2. The system of claim 1, wherein the action comprises configuring the BWTD with a particular grace period that is based at least in part on the determined activity of the wearer.
 3. The system of claim 1, wherein the plurality of activities includes at least one of: walking, running, driving or riding in or on a motor vehicle, bicycling, swimming, skating, and skateboarding.
 4. The system of claim 1, wherein the set of activity-dependent rules includes a first rule and a second rule, satisfaction of the first rule requiring the wearer of the BWTD to perform a first activity, the BWTD to have lost GNSS connectivity, and a first grace period to have expired prior to the BWTD regaining GNSS connectivity, satisfaction of the second rule requiring the wearer of the BWTD to perform a second activity, the BWTD to have lost GNSS connectivity, and a second grace period to have expired prior to the BWTD regaining GNSS connectivity, and the first activity being different from the second activity, and the first grace period and the second grace period having different durations.
 5. The system of claim 1, wherein the instructions that cause the one or more processors to perform the action comprise instructions that, when executed, cause the BWTD to output a notification instructing the wearer of the BWTD to move to a GNSS-accessible location.
 6. The system of claim 1, wherein the one or more sensors comprise one or more of: an accelerometer and a directionality sensor, the directionality sensor comprising a gyroscope or a magnetometer, wherein the instructions cause the one or more processors to determine the activity of the wearer of the BWTD based on data generated by the accelerometer and data generated by the directionality sensor.
 7. The system of claim 1, wherein the BWTD includes the GNSS component, the one or more sensors, and the BWTD includes one or more processors in the set of processors, the instructions causing the one or more processors in the BWTD to perform at least one of: determining that the current location of the BWTD cannot be determined using the GNSS component; determining, based on the data generated by the one or more sensors, the activity of the wearer of the BWTD; determining, based in part on the activity of the wearer of the BWTD and based on the determination that the current location of the BWTD cannot be determined using the GNSS component, whether to perform the action; and performing the action in response to the determination to perform the action.
 8. The system of claim 1, further comprising a server device remote from the BWTD, the server device including one or more processors in the set of processors, the instructions causing the one or more processors in the server device to perform at least one of: determining that the current location of the BWTD cannot be determined using the GNSS component; determining, based on the data generated by the one or more sensors, the activity of the wearer of the BWTD; determining, based in part on the activity of the wearer of the BWTD and based on the determination that the current location of the BWTD cannot be determined using the GNSS component, whether to perform the action; and performing the action in response to the determination to perform the action.
 9. The system of claim 1, wherein the activity corresponds to an identifiable output signature of the one or more sensors.
 10. A method comprising: determining, by a set of processors in a system for tracking a location of a body-worn tracking device (BWTD), that a current location of the BWTD cannot be determined using a global navigation satellite system (GNSS) component of the system, the set of processors including one or more processors; determining, by the one or more processors, based on data generated by one or more sensors, an activity of a wearer of the BWTD, the activity of the wearer being a form of locomotion or a sedentary activity; and performing, by the one or more processors, an action based in part on the activity of the wearer of the BWTD and based on a determination that the current location of the BWTD cannot be determined using the GNSS component, determining, by the one or more processors, whether to perform the action based on whether a condition specified by an activity-dependent rule in a set of activity-dependent rules is satisfied, each respective activity-dependent rule in the set of activity-dependent rules specifying a condition that is satisfied if the wearer of the BWTD performs a particular activity of a plurality of activities and if the current location of the BWTD is not determinable using the GNSS component, determining, by the one or more processors, a distance traveled, the distance traveled being a net distance traveled by the BWTD from a location at which the one or more processors were most recently able to determine the current location of the BWTD using the GNSS component, wherein the set of activity-dependent rules includes a first rule and a second rule, satisfaction of the first rule requiring the wearer of the BWTD to perform a first activity, the BWTD to have lost GNSS connectivity, and the distance traveled to be greater than a first threshold, satisfaction of the second rule requiring the wearer of the BWTD to perform a second activity, the BWTD to have lost GNSS connectivity, and the distance traveled to be greater than a second threshold, and the first activity being different from the second activity, and the first threshold being different from the second threshold, wherein the one or more sensors include an accelerometer and a directionality sensor, the directionality sensor comprising a gyroscope or a magnetometer, and wherein determining the net distance comprises: detecting, by the one or more processors, based on data generated by an accelerometer, a plurality of steps; determining, by the one or more processors, an estimated distance traveled during each step of the plurality of steps; determining, by the one or more processors, based on the data generated by the directionality sensor, a direction of travel of each step of the plurality of steps; and determining, by the one or more processors, based on the estimated distance traveled during each step and the direction of travel of each step, the net distance between the current location of the BWTD and the location at which the one or more processors were most recently able to determine the current location of the BWTD using the GNSS component.
 11. The method of claim 10, wherein the action comprises configuring the BWTD with a particular grace period that is based at least in part on the determined activity of the wearer.
 12. The method of claim 10, wherein the plurality of activities includes at least one of: walking, running, driving or riding in or on a motor vehicle, bicycling, swimming, skating, and skateboarding.
 13. The method of claim 10, wherein the set of activity-dependent rules includes a first rule and a second rule, satisfaction of the first rule requiring the wearer of the BWTD to perform a first activity, the BWTD to have lost GNSS connectivity, and a first grace period to have expired prior to the BWTD regaining GNSS connectivity, satisfaction of the second rule requiring the wearer of the BWTD to perform a second activity, the BWTD to have lost GNSS connectivity, and a second grace period to have expired prior to the BWTD regaining GNSS connectivity, the first activity being different from the second activity, and the first grace period and the second grace period having different durations.
 14. The method of claim 10, wherein performing the action comprises outputting, by the BWTD, a notification instructing the wearer of the BWTD to move to a GNSS-accessible location and wherein the one or more sensors comprise one or more of: an accelerometer and a directionality sensor, the directionality sensor comprising a gyroscope or a magnetometer, wherein determining the activity of the wearer of the BWTD comprises determining, by the one or more processors, the activity of the wearer of the BWTD based on data generated by the accelerometer and data generated by the directionality sensor.
 15. The method of claim 10, wherein the BWTD includes the GNSS component, the one or more sensors, and the BWTD includes one or more processors in the set of processors, the one or more processors in the BWTD performing at least one of: determining that the current location of the BWTD cannot be determined using the GNSS component; determining, based on the data generated by the one or more sensors, the activity of the wearer of the BWTD; determining based in part on the activity of the wearer of the BWTD and based on the determination that the current location of the BWTD cannot be determined using the GNSS component, whether to perform the action; and performing the action in response to the determination to perform the action.
 16. The method of claim 10, wherein the system comprises a server device remote from the BWTD, the server device including one or more processors in the set of processors, the one or more processors in the server device performing at least one of: determining that the current location of the BWTD cannot be determined using the GNSS component; determining, based on the data generated by the one or more sensors, the activity of the wearer of the BWTD; determining based in part on the activity of the wearer of the BWTD and based on the determination that the current location of the BWTD cannot be determined using the GNSS component, whether to perform the action; and performing the action in response to the determination to perform the action.
 17. The method of claim 10, wherein the activity corresponds to an identifiable output signature of the one or more sensors.
 18. A body-worn tracking device (BWTD) comprising: a global navigation satellite system (GNSS) component; one or more sensors; a set of one or more processors; and one or more memory devices comprising instructions that, when executed by the one or more processors, cause the one or more processors to: determine whether a current location of the BWTD can be determined using the GNSS component; determine, based on data generated by the one or more sensors, an activity of a wearer of the BWTD, the activity of the wearer being a form of locomotion or a sedentary activity; responsive to a determination that the current location of the BWTD cannot be determined using the GNSS component, adjust, based on the activity of the wearer of the BWTD, a duration of a grace period; and generate a notification in response to determining the grace period has expired, wherein the instructions cause the one or more processors to: (i) determine whether to perform the action based on whether a condition specified by an activity-dependent rule in a set of activity-dependent rules is satisfied, each respective activity-dependent rule in the set of activity-dependent rules specifying a condition that is satisfied if the wearer of the BWTD performs a particular activity of a plurality of activities and if the current location of the BWTD is not determinable using the GNSS component, (ii) determine a distance traveled, the distance traveled being a net distance traveled by the BWTD from a location at which the one or more processors were most recently able to determine the current location of the BWTD using the GNSS component, wherein the set of activity-dependent rules includes a first rule and a second rule, satisfaction of the first rule requiring the wearer of the BWTD to perform a first activity, the BWTD to have lost GNSS connectivity, and the distance traveled to be greater than a first threshold, satisfaction of the second rule requiring the wearer of the BWTD to perform a second activity, the BWTD to have lost GNSS connectivity, and the distance traveled to be greater than a second threshold, and the first activity being different from the second activity, and the first threshold being different from the second threshold, wherein the one or more sensors include an accelerometer and a directionality sensor, the directionality sensor comprising a gyroscope or a magnetometer, wherein instructions that cause the one or more processors to determine the net distance cause the one or more processors to: detect, based on data generated by an accelerometer, a plurality of steps; determine an estimated distance traveled during each step of the plurality of steps; determine, based on the data generated by the directionality sensor, a direction of travel of each step of the plurality of steps; and determine, based on the estimated distance traveled during each step and the direction of travel of each step, the net distance between the current location of the BWTD and the location at which the one or more processors were most recently able to determine the current location of the BWTD using the GNSS component. 